//
// Int8.hh for  in /home/jousse_f//workspace/C++/abstractVM
// 
// Made by florian jousseau
// Login   <jousse_f@epitech.net>
// 
// Started on  Mon Feb  6 11:09:32 2012 florian jousseau
// Last update Thu Feb 16 17:35:34 2012 florian jousseau
//

#ifndef INT16_H_
# define INT16_H_

#include "IOperand.hh"
#include <string>

class		Int16 : public IOperand
{
  int				Number;
  eOperandType			Type;
  std::string			Representation;

public :
  Int16(int nb, eOperandType type);
  Int16(const Int16 & other);
  Int16				&operator=(const Int16 & other);
  int				getNumber() const;
  virtual std::string const &	toString() const;
  virtual int			getPrecision() const;
  virtual eOperandType		getType() const;
  virtual IOperand		*operator+(const IOperand &rhs) const;
  virtual IOperand		*operator-(const IOperand &rhs) const;
  virtual IOperand		*operator*(const IOperand &rhs) const;
  virtual IOperand		*operator/(const IOperand &rhs) const;
  virtual IOperand		*operator%(const IOperand &rhs) const;
  virtual ~Int16();

private:
  void		setRepresentation();
};

#endif /* !INT8_H_ */
